<?php

    #-------------------------------------------------------------#
	# This file is part of the Tekuna MVC Microframework for PHP. #
	# (c) 2009 Niels Jäckel <niels.jaeckel@tekuna.org>            #
	# Please visit http://tekuna.org/ for more information.       #
	#                                                             #
	# This software is licensed under the MIT License. Please     #
	# view the LICENSE file for the full text of this license.    #
    #-------------------------------------------------------------#


	/**
	 * This interface defines the set of methods that are used by the
	 * MVC controller to build a template-based output. You could call
	 * it the interface for Tekuna-compatible template engines.
	 */

	interface TekunaView {


		/**
		 * Build a new instance of a TekunaView implementation. Base
		 * directory and template file are given separately to be
		 * altered independently.
		 *
		 * @param string $sBaseDir the base directory of the template
		 * @param string $sTemplate the template file
		 *        (file name and format differ from TekunaView implementation to another)
		 */

		public function __construct($sBaseDir = '', $sTemplate = '');


		/**
		 * Assign a new placeholder variable with some content
		 *
		 * @param string $sKey the name of the placeholder
		 * @param mixed $mValue the value for the placeholder
		 */

		public function assign($sKey, $mValue);


		/**
		 * Set the template base directory
		 *
		 * @param string $sBaseDir the new base directory for the template
		 */

		public function setTemplateBaseDir($sBaseDir);


		/**
		 * Set the template's file name
		 *
		 * @param string $sTemplate the new template file name
		 */

		public function setTemplate($sTemplate);


		/**
		 * Process the given template and fill in all registered values
		 * for the specified placeholders
		 *
		 * @return string the output
		 */

		public function process();
	}

